package chat;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

public class Sala implements Serializable {
	
	private String nome;
	private int porta;
	private int limiteUsuarios;
	private String endereco;
	private List<String> conectados;
	private List<String> usuariosPermitidos;
	private boolean reservada;
	
	public Sala(String nome, int limiteUsuarios, String endereco, int porta){
		this.setReservada(false);
		this.porta = porta;
		this.nome = nome;
		this.limiteUsuarios = limiteUsuarios;
		this.endereco = endereco;
		this.setConectados(new ArrayList<String>());
	}
	
	public Sala(String nome, int limiteUsuarios, String endereco, List<String> usuarios){
		this.setReservada(true);
		this.porta = 8380;
		this.nome = nome;
		this.limiteUsuarios = limiteUsuarios;
		this.endereco = endereco;
		this.usuariosPermitidos = usuarios;
		this.setConectados(new ArrayList<String>());
	}
	public String getNome() {
		return nome;
	}
	public void setNome(String nome) {
		this.nome = nome;
	}
	public int getLimiteUsuarios() {
		return limiteUsuarios;
	}
	public void setLimiteUsuarios(int limiteUsuarios) {
		this.limiteUsuarios = limiteUsuarios;
	}
	public String getEndereco() {
		return endereco;
	}
	public void setEndereco(String endereco) {
		this.endereco = endereco;
	}

	public List<String> getConectados() {
		return conectados;
	}

	public void setConectados(List<String> conectados) {
		this.conectados = conectados;
	}
	
	public void addConectado(String conectado){
		this.conectados.add(conectado);
	}

	public List<String> getUsuariosPermitidos() {
		return usuariosPermitidos;
	}

	public void setUsuariosPermitidos(List<String> usuariosPermitidos) {
		this.usuariosPermitidos = usuariosPermitidos;
	}

	public boolean isReservada() {
		return reservada;
	}

	public void setReservada(boolean reservada) {
		this.reservada = reservada;
	}

	public int getPorta() {
		return porta;
	}

	public void setPorta(int porta) {
		this.porta = porta;
	}
}
